ostree.git
6 months agoSkip test-admin-deploy-uboot.sh on s390x
Simon McVittie [Thu, 26 Oct 2023 10:26:04 +0000 (11:26 +0100)]
Skip test-admin-deploy-uboot.sh on s390x

It fails on a porterbox. ostree hard-codes zipl to be used on s390x,
so it's reasonable that tests for other bootloaders might not work.

Bug: https://github.com/ostreedev/ostree/issues/3086
Forwarded: no

Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-admin-deploy-uboot.sh-on-s390x.patch

6 months agotest-sysroot: Skip on s390x by default
Simon McVittie [Tue, 6 Dec 2022 10:59:33 +0000 (10:59 +0000)]
test-sysroot: Skip on s390x by default

This test regularly fails on the buildds, but I cannot reproduce the
failure on a porterbox.

Bug: https://github.com/ostreedev/ostree/issues/2527
Bug-Debian: https://bugs.debian.org/1025532
Forwarded: not-needed

Gbp-Pq: Topic debian
Gbp-Pq: Name test-sysroot-Skip-on-s390x-by-default.patch

6 months agoSkip test-pull-repeated during CI
Simon McVittie [Mon, 30 Jul 2018 15:51:01 +0000 (16:51 +0100)]
Skip test-pull-repeated during CI

This test is expected to fail a small proportion of the time. During
the build of ostree 2018.7-1 in Debian, it seems we were unlucky on
s390x. Non-deterministic tests are also problematic for autopkgtest,
where they can gate migration of our dependencies like GLib, so skip
this test unless the caller has opted-in to non-deterministic tests.

It would be appropriate to enable this test in environments where
failures can easily be retried and are not disruptive to other
packages.

Signed-off-by: Simon McVittie <smcv@debian.org>
Gbp-Pq: Topic debian
Gbp-Pq: Name Skip-test-pull-repeated-during-CI.patch

6 months agoRelease to unstable
Simon McVittie [Thu, 14 Aug 2025 19:12:41 +0000 (20:12 +0100)]
Release to unstable

6 months agod/control: Indicate preferred libcurl flavour in -dev dependencies, too
Simon McVittie [Thu, 14 Aug 2025 18:40:57 +0000 (19:40 +0100)]
d/control: Indicate preferred libcurl flavour in -dev dependencies, too

6 months agoPrefer the OpenSSL flavour of libcurl
Simon McVittie [Thu, 14 Aug 2025 18:02:19 +0000 (19:02 +0100)]
Prefer the OpenSSL flavour of libcurl

This is the one that upstream is going to be testing with in practice.

6 months agoNew upstream release
Simon McVittie [Thu, 14 Aug 2025 17:58:27 +0000 (18:58 +0100)]
New upstream release

6 months agoUpdate upstream source from tag 'upstream/2025.4'
Simon McVittie [Thu, 14 Aug 2025 17:53:37 +0000 (18:53 +0100)]
Update upstream source from tag 'upstream/2025.4'

Update to upstream version '2025.4'
with Debian dir ca91ffc552b3f41467bc284f51a2cbc479a3c6c3

6 months agoNew upstream version 2025.4
Simon McVittie [Thu, 14 Aug 2025 17:53:28 +0000 (18:53 +0100)]
New upstream version 2025.4

7 months agoMerge pull request #3481 from cgwalters/release
Colin Walters [Tue, 22 Jul 2025 14:03:30 +0000 (10:03 -0400)]
Merge pull request #3481 from cgwalters/release

Release 2025.4

7 months agoconfigure: post-release version bump
Colin Walters [Mon, 21 Jul 2025 20:50:24 +0000 (16:50 -0400)]
configure: post-release version bump

7 months agoRelease 2025.4
Colin Walters [Mon, 21 Jul 2025 20:46:51 +0000 (16:46 -0400)]
Release 2025.4

7 months agoMerge pull request #3473 from cgwalters/root-transient-ro
Colin Walters [Mon, 21 Jul 2025 16:45:51 +0000 (12:45 -0400)]
Merge pull request #3473 from cgwalters/root-transient-ro

Add root.transient-ro

7 months agoMerge pull request #3477 from wsabransky/patch-1
Colin Walters [Mon, 21 Jul 2025 01:21:59 +0000 (21:21 -0400)]
Merge pull request #3477 from wsabransky/patch-1

ostree-prepare-root: remove duplicate transient directory

7 months agoostree-prepare-root: remove duplicate transient directory
Will Sabransky [Sun, 20 Jul 2025 22:05:44 +0000 (17:05 -0500)]
ostree-prepare-root: remove duplicate transient directory

Only create the transient etc directory once to prevent failures due to directory existence.

7 months agoMerge pull request #3475 from cgwalters/fix-since-annotations
Colin Walters [Sun, 20 Jul 2025 19:51:55 +0000 (15:51 -0400)]
Merge pull request #3475 from cgwalters/fix-since-annotations

Fix since annotations && update rust bindings

7 months agorust-bindings: Regenerate with updated gir
Colin Walters [Fri, 18 Jul 2025 19:11:15 +0000 (15:11 -0400)]
rust-bindings: Regenerate with updated gir

In particular we had a conflict as the previous bindings
were generated with an old version of the C APIs.

7 months agosysroot: Fix Since: for soft reboot APIs
Colin Walters [Fri, 18 Jul 2025 19:03:27 +0000 (15:03 -0400)]
sysroot: Fix Since: for soft reboot APIs

We should really have a CI gate for this...

7 months agoAdd root.transient-ro
Colin Walters [Wed, 16 Jul 2025 15:08:00 +0000 (11:08 -0400)]
Add root.transient-ro

An example use case for this is having privileged code
add dynamic new toplevel mountpoints (that don't persist across
reboots/upgrades), while still keeping the rootfs readonly
for processes by default.

Closes: https://github.com/ostreedev/ostree/issues/3471
Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoMerge pull request #3472 from cgwalters/root-transient-ro-prep
Colin Walters [Wed, 16 Jul 2025 20:07:12 +0000 (16:07 -0400)]
Merge pull request #3472 from cgwalters/root-transient-ro-prep

Prep patches for rootfs.transient-ro

7 months agoprepare-root: Move root.transient parsing rootfs parsing
Colin Walters [Wed, 16 Jul 2025 17:18:58 +0000 (13:18 -0400)]
prepare-root: Move root.transient parsing rootfs parsing

This deduplicates more code between main boot and soft reboot,
and is prep for supporting `rootfs.transient-ro = true`.

7 months agoprepare-root: Rename `enabled` -> `composefs_enabled`
Colin Walters [Wed, 16 Jul 2025 16:56:49 +0000 (12:56 -0400)]
prepare-root: Rename `enabled` -> `composefs_enabled`

Prep for moving more functionality there, it's really about
the rootfs, not just composefs.

Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoprepare-root: Rename rootfs variables
Colin Walters [Wed, 16 Jul 2025 16:56:49 +0000 (12:56 -0400)]
prepare-root: Rename rootfs variables

Prep for moving more functionality there, it's really about
the rootfs, not just composefs.

Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoprepare-root: Rename rootfs loading functions
Colin Walters [Wed, 16 Jul 2025 16:56:49 +0000 (12:56 -0400)]
prepare-root: Rename rootfs loading functions

Prep for moving more functionality there, it's really about
the rootfs, not just composefs.

7 months agoMerge pull request #3470 from cgwalters/build-dist-test-scripts
Colin Walters [Tue, 15 Jul 2025 11:55:26 +0000 (07:55 -0400)]
Merge pull request #3470 from cgwalters/build-dist-test-scripts

build-sys: Always EXTRA_DIST test scripts

7 months agobuild-sys: Always EXTRA_DIST test scripts
Colin Walters [Mon, 14 Jul 2025 19:36:42 +0000 (15:36 -0400)]
build-sys: Always EXTRA_DIST test scripts

Fixes the case of doing `make dist` without some
build features enabled.

Closes: https://github.com/ostreedev/ostree/issues/3469
Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoUpdate changelog
Simon McVittie [Sat, 12 Jul 2025 18:03:19 +0000 (19:03 +0100)]
Update changelog

7 months agod/control: Add jq to Build-Depends and -tests Depends
Simon McVittie [Sat, 12 Jul 2025 16:00:00 +0000 (17:00 +0100)]
d/control: Add jq to Build-Depends and -tests Depends

7 months agoRebase patch series
Simon McVittie [Sat, 12 Jul 2025 15:38:10 +0000 (16:38 +0100)]
Rebase patch series

7 months agoUpdate changelog
Simon McVittie [Sat, 12 Jul 2025 15:35:10 +0000 (16:35 +0100)]
Update changelog

7 months agod/copyright: Update
Simon McVittie [Sat, 12 Jul 2025 15:33:34 +0000 (16:33 +0100)]
d/copyright: Update

7 months agod/libostree-1-1.symbols: Update
Simon McVittie [Sat, 12 Jul 2025 15:28:36 +0000 (16:28 +0100)]
d/libostree-1-1.symbols: Update

7 months agoNew upstream release
Simon McVittie [Sat, 12 Jul 2025 15:26:11 +0000 (16:26 +0100)]
New upstream release

7 months agoUpdate upstream source from tag 'upstream/2025.3'
Simon McVittie [Sat, 12 Jul 2025 15:24:16 +0000 (16:24 +0100)]
Update upstream source from tag 'upstream/2025.3'

Update to upstream version '2025.3'
with Debian dir d4e8b12470db3e6abe7df9851b0cc66eca741716

7 months agoNew upstream version 2025.3
Simon McVittie [Sat, 12 Jul 2025 15:24:08 +0000 (16:24 +0100)]
New upstream version 2025.3

7 months agoMerge pull request #3455 from jmarrero/bindings
Colin Walters [Thu, 10 Jul 2025 16:48:50 +0000 (12:48 -0400)]
Merge pull request #3455 from jmarrero/bindings

rust: Add v2025_3 feature and bump versions

7 months agoMerge pull request #3468 from jmarrero/release-20253
Joseph Marrero Corchado [Thu, 10 Jul 2025 16:23:42 +0000 (12:23 -0400)]
Merge pull request #3468 from jmarrero/release-20253

Release 2025.3

7 months agoconfigure: post-release version bump
Joseph Marrero Corchado [Thu, 10 Jul 2025 14:04:16 +0000 (10:04 -0400)]
configure: post-release version bump

7 months agoRelease 2025.3
Joseph Marrero Corchado [Thu, 10 Jul 2025 14:02:00 +0000 (10:02 -0400)]
Release 2025.3

7 months agoMerge pull request #3310 from igoropaniuk/boot_count
Colin Walters [Thu, 10 Jul 2025 11:24:06 +0000 (07:24 -0400)]
Merge pull request #3310 from igoropaniuk/boot_count

sysroot: Support boot counting for boot entries

7 months agosysroot: Support boot counting for boot entries
Igor Opaniuk [Wed, 11 Sep 2024 16:03:10 +0000 (18:03 +0200)]
sysroot: Support boot counting for boot entries

Add support for boot counting for bootloader entries [1].
The boot counting data is stored in the name of the boot loader entry.
A boot loader entry file name may contain a plus (+) followed by a number.
This may optionally be followed by a minus (-) followed by a second number.
The dot (.) and file name suffix (conf or efi) must immediately follow.

The feature is enabled via sysroot configuration:
[sysroot]
boot-counting-tries=3

Testing:
$ ostree admin deploy 91fc19319be9e79d07159303dff125f40f10e5c25614630dcbed23d95e36f907
Copying /etc changes: 2 modified, 3 removed, 4 added
bootfs is sufficient for calculated new size: 0 bytes
Transaction complete; bootconfig swap: yes; bootversion: boot.0.1, deployment count change: 1

$ ls /boot/loader/entries
ostree-1.conf  ostree-2+3.conf

[1] https://uapi-group.org/specifications/specs/boot_loader_specification/#boot-counting
Signed-off-by: Igor Opaniuk <igor.opaniuk@foundries.io>
Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoMerge pull request #3467 from cgwalters/config-set-validate
Joseph Marrero Corchado [Thu, 10 Jul 2025 02:24:04 +0000 (22:24 -0400)]
Merge pull request #3467 from cgwalters/config-set-validate

repo: Add new API to write config with reload+validation

7 months agoMerge pull request #3465 from cgwalters/soft-reboot-kargs-check
Colin Walters [Wed, 9 Jul 2025 22:30:10 +0000 (18:30 -0400)]
Merge pull request #3465 from cgwalters/soft-reboot-kargs-check

Soft reboot kargs check

7 months agorepo: Add new API to write config with reload+validation
Colin Walters [Wed, 9 Jul 2025 22:04:08 +0000 (18:04 -0400)]
repo: Add new API to write config with reload+validation

The `ostree config set` CLI should really disallow
writing invalid values. To implement that, add a new
API that also *reloads* to the new config, and
rolls back on failure.

Closes: https://github.com/ostreedev/ostree/issues/1827
Signed-off-by: Colin Walters <walters@verbum.org>
7 months agosoft-reboot: Check for kernel argument changes
Colin Walters [Wed, 9 Jul 2025 19:21:56 +0000 (15:21 -0400)]
soft-reboot: Check for kernel argument changes

This closes a drift gap possibility.

Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoMerge pull request #3463 from cgwalters/ci-bootc-c10s
Colin Walters [Wed, 9 Jul 2025 18:01:50 +0000 (14:01 -0400)]
Merge pull request #3463 from cgwalters/ci-bootc-c10s

ci: Expand bootc testing to cover c10s

7 months agorust-bindings: update for soft-reboot
Joseph Marrero Corchado [Mon, 30 Jun 2025 19:21:34 +0000 (15:21 -0400)]
rust-bindings: update for soft-reboot

7 months agorust: Add v2025_3 feature and bump versions
Joseph Marrero Corchado [Fri, 27 Jun 2025 15:16:57 +0000 (11:16 -0400)]
rust: Add v2025_3 feature and bump versions

7 months agotests: Verify soft reboot with changed kernel state
Colin Walters [Wed, 9 Jul 2025 17:28:18 +0000 (13:28 -0400)]
tests: Verify soft reboot with changed kernel state

7 months agoMerge pull request #3464 from cgwalters/man-drop-authorgroup
Colin Walters [Wed, 9 Jul 2025 13:51:20 +0000 (09:51 -0400)]
Merge pull request #3464 from cgwalters/man-drop-authorgroup

docs: Remove <authorgroup>

7 months agodocs: Remove <authorgroup>
Colin Walters [Tue, 8 Jul 2025 22:26:26 +0000 (18:26 -0400)]
docs: Remove <authorgroup>

We've just been copy pasting this; for some commands it's
true, but others have been written by other people. Most of
the commands just call into the library code which is written
by various people.

Because it isn't really accurate, just drop it.

Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoMerge pull request #3460 from cgwalters/soft-reboot-followups3
Colin Walters [Tue, 8 Jul 2025 17:03:34 +0000 (13:03 -0400)]
Merge pull request #3460 from cgwalters/soft-reboot-followups3

soft-reboot: Many changes

7 months agosoft-reboot: Many changes
Colin Walters [Mon, 30 Jun 2025 21:07:18 +0000 (17:07 -0400)]
soft-reboot: Many changes

- Add --reboot and --reset arguments
- Don't compile on centos stream 9 (missing `open_tree` glibc wrapper)
  as the functionality isn't supported by systemd there; that said
  we should also do dynamic detection
- Fix /sysroot writability
- If we target as soft reboot a deployment
  *other* than the staged one, automatically clear the staged
  deployment as otherwise the semantics are too confusing.
- Rename the APIs so they all say `soft_reboot` and not `next_root`

Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoci: Expand bootc testing to cover c10s
Colin Walters [Tue, 8 Jul 2025 00:50:45 +0000 (20:50 -0400)]
ci: Expand bootc testing to cover c10s

Because it's an active development target.

Signed-off-by: Colin Walters <walters@verbum.org>
7 months agoMerge pull request #3461 from cgwalters/sysroot-deploy-cleanup
Colin Walters [Mon, 7 Jul 2025 14:58:54 +0000 (10:58 -0400)]
Merge pull request #3461 from cgwalters/sysroot-deploy-cleanup

deploy: Don't create deployment object before deploying

8 months agodeploy: Don't create deployment object before deploying
Colin Walters [Tue, 1 Jul 2025 18:38:10 +0000 (14:38 -0400)]
deploy: Don't create deployment object before deploying

Just pass the bits of the new deployment we want down into the
checkout function. This lets us reuse the common helper
to init a deployment which now always captures the device/inode.

Followup from previous commit.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoMerge pull request #3456 from cgwalters/soft-reboot-followups2
Colin Walters [Tue, 1 Jul 2025 18:20:23 +0000 (14:20 -0400)]
Merge pull request #3456 from cgwalters/soft-reboot-followups2

sysroot: Remove now-spurious assertion change from soft reboot changes

8 months agoMerge pull request #3459 from cgwalters/deployments-cache-devino
Colin Walters [Tue, 1 Jul 2025 18:17:05 +0000 (14:17 -0400)]
Merge pull request #3459 from cgwalters/deployments-cache-devino

sysroot: Cache deployment device/inode

8 months agoMerge pull request #3457 from cgwalters/deploy-quiet-systemctl
Colin Walters [Tue, 1 Jul 2025 18:16:34 +0000 (14:16 -0400)]
Merge pull request #3457 from cgwalters/deploy-quiet-systemctl

deploy: Default quiet for forked systemctl

8 months agosysroot: Cache deployment device/inode
Colin Walters [Tue, 1 Jul 2025 14:54:52 +0000 (10:54 -0400)]
sysroot: Cache deployment device/inode

This is a lot cleaner. In particular, it's prep
for having soft reboot finalize at shutdown time, because
we weren't correctly handling the staged deployment in
that case.

To implement this we need to basically stop using
ostree_deployment_new() in most places, and instead ensure that all
callers use this path which cache the device/inode.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agodeploy: Default quiet for forked systemctl
Colin Walters [Mon, 30 Jun 2025 20:34:11 +0000 (16:34 -0400)]
deploy: Default quiet for forked systemctl

I'm checking over the codebase for places we fork children; doing
so from a library means we may end up printing to stdout/stderr
of our caller, which we shouldn't do.

- Also add an error prefix with information about the service
  if we fail

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agosysroot: Remove now-spurious assertion change from soft reboot changes
Colin Walters [Mon, 30 Jun 2025 19:36:32 +0000 (15:36 -0400)]
sysroot: Remove now-spurious assertion change from soft reboot changes

We fixed the bug that caused soft reboot to trip the assertion
here, so revert back to a hard check.

8 months agoMerge pull request #3453 from cgwalters/staged-status-json
Colin Walters [Fri, 27 Jun 2025 17:27:55 +0000 (13:27 -0400)]
Merge pull request #3453 from cgwalters/staged-status-json

status: Add more tests for json

8 months agoMerge pull request #3450 from cgwalters/justfile-more
Colin Walters [Fri, 27 Jun 2025 13:30:26 +0000 (09:30 -0400)]
Merge pull request #3450 from cgwalters/justfile-more

justfile: enhancements

8 months agoMerge pull request #3452 from cgwalters/soft-reboot-followup
Colin Walters [Fri, 27 Jun 2025 13:26:23 +0000 (09:26 -0400)]
Merge pull request #3452 from cgwalters/soft-reboot-followup

status: Add `soft-reboot-target` to JSON

8 months agostatus: Add more tests for json
Colin Walters [Fri, 27 Jun 2025 01:02:03 +0000 (21:02 -0400)]
status: Add more tests for json

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agostatus: Add `soft-reboot-target` to JSON
Colin Walters [Thu, 26 Jun 2025 21:57:58 +0000 (17:57 -0400)]
status: Add `soft-reboot-target` to JSON

It's there in the human readable status.

And update the soft-reboot test suite to assert things via
JSON since it's *way* cleaner.

8 months agoMerge pull request #3420 from jmarrero/builds-soft
Joseph Marrero Corchado [Thu, 26 Jun 2025 21:34:48 +0000 (17:34 -0400)]
Merge pull request #3420 from jmarrero/builds-soft

ot-builtin-admin: Add admin prepare-soft-reboot

8 months agobuild-sys: Move clang-format into justfile
Colin Walters [Wed, 25 Jun 2025 17:39:48 +0000 (13:39 -0400)]
build-sys: Move clang-format into justfile

We don't need a build to run it, it's more appropriate
there.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoMerge pull request #3451 from cgwalters/emit-json
Colin Walters [Thu, 26 Jun 2025 17:00:04 +0000 (13:00 -0400)]
Merge pull request #3451 from cgwalters/emit-json

status: Add --json output

8 months agoAdd ostree admin prepare-soft-reboot
Colin Walters [Wed, 18 Jun 2025 19:10:53 +0000 (15:10 -0400)]
Add ostree admin prepare-soft-reboot

This adds support for systemd soft reboots.

Closes: https://github.com/ostreedev/ostree/issues/3242
Signed-off-by: Colin Walters <walters@verbum.org>
Co-authored-by: Joseph Marrero Corchado <jmarrero@redhat.com>
Co-authored-by: Mary Strodl <ipadlover8322@gmail.com>
Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoadmin: Expand column for subcommands
Colin Walters [Wed, 25 Jun 2025 18:14:58 +0000 (14:14 -0400)]
admin: Expand column for subcommands

Prep for soft reboot.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoprepare-root: Use tempdir for transient etc backing
Colin Walters [Tue, 24 Jun 2025 21:14:54 +0000 (17:14 -0400)]
prepare-root: Use tempdir for transient etc backing

Prep for soft reboots.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agostatus: Add --json output
Colin Walters [Thu, 26 Jun 2025 13:59:28 +0000 (09:59 -0400)]
status: Add --json output

This is way long overdue, and will be useful for a variety of things
but is especially motivated by soft reboot testing.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agojsonwrt: Integration fixups
Colin Walters [Thu, 26 Jun 2025 11:52:20 +0000 (07:52 -0400)]
jsonwrt: Integration fixups

This gets the code to build without the rest of util-linux.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoImport jsonwrt code from util-linux
Colin Walters [Thu, 26 Jun 2025 11:48:38 +0000 (07:48 -0400)]
Import jsonwrt code from util-linux

We've had a longstanding need to emit JSON to be friendlier
to shell scripting tools.

I hesitated for (way too long) on which JSON libraries to
use, but actually since we don't need to *parse* JSON,
we only need to omit it, the problem domain is super
simple.

util-linux has simple code for this
https://github.com/util-linux/util-linux/commit/b649ff92d2d91864e85a5bba4c89d52236817d9e

So this commit imports it, but it will need a little massaging
to build.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agojustfile: Accept args, add build-host shortcuts
Colin Walters [Tue, 17 Jun 2025 22:11:46 +0000 (18:11 -0400)]
justfile: Accept args, add build-host shortcuts

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoMerge pull request #3449 from cgwalters/fix-validate-sig-overwrite
Colin Walters [Wed, 25 Jun 2025 13:24:39 +0000 (09:24 -0400)]
Merge pull request #3449 from cgwalters/fix-validate-sig-overwrite

prepare-root: Fix error overwrite

8 months agoMerge pull request #3448 from cgwalters/refactor-prepare-root-etc
Joseph Marrero Corchado [Wed, 25 Jun 2025 13:24:15 +0000 (09:24 -0400)]
Merge pull request #3448 from cgwalters/refactor-prepare-root-etc

prepare-root: Some prep PRs

8 months agoprepare-root: Move /etc handling into library
Colin Walters [Tue, 24 Jun 2025 20:39:00 +0000 (16:39 -0400)]
prepare-root: Move /etc handling into library

Prep for soft reboots.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoprepare-root: Fix error overwrite
Colin Walters [Tue, 24 Jun 2025 20:47:14 +0000 (16:47 -0400)]
prepare-root: Fix error overwrite

An AI code review tool spotted incorrect usage of GError. Awesome.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoprepare-root: Move metadata for root transient into lib
Colin Walters [Tue, 24 Jun 2025 20:29:45 +0000 (16:29 -0400)]
prepare-root: Move metadata for root transient into lib

Prep for soft reboots.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoprepare-root: Move metadata for deployment into otcore
Colin Walters [Tue, 24 Jun 2025 20:08:29 +0000 (16:08 -0400)]
prepare-root: Move metadata for deployment into otcore

- Rename `mount_composefs` to `mount_rootfs` to make a little clearer
  what it does; even though if the rootfs is not composefs we don't
  do anything before.
- But do always unconditionally update the metadata builder with
  the device/inode

Prep for soft reboots.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoMerge pull request #3447 from cgwalters/prepare-root-sysroot-prep
Colin Walters [Tue, 24 Jun 2025 18:49:32 +0000 (14:49 -0400)]
Merge pull request #3447 from cgwalters/prepare-root-sysroot-prep

prepare-root: Don't hardcode sysroot

8 months agoprepare-root: Don't hardcode sysroot
Colin Walters [Tue, 24 Jun 2025 15:14:41 +0000 (11:14 -0400)]
prepare-root: Don't hardcode sysroot

Follow to previous change to factor out composefs mounting;
prep for soft reboots.

Signed-off-by: Colin Walters <walters@verbum.org>
8 months agoMerge pull request #3445 from cgwalters/prepare-root-prep
Colin Walters [Tue, 24 Jun 2025 14:35:50 +0000 (10:35 -0400)]
Merge pull request #3445 from cgwalters/prepare-root-prep

prepare-root: Factor out composefs handling into otcore

8 months agoprepare-root: Factor out composefs handling into otcore
Colin Walters [Thu, 19 Jun 2025 11:42:48 +0000 (07:42 -0400)]
prepare-root: Factor out composefs handling into otcore

I'm thinking about creating ostree-prepare-soft-reboot.c.
Prepare for this by factoring out shared helper functions.

8 months agoMerge pull request #3443 from cgwalters/readme-tweak
Colin Walters [Sat, 14 Jun 2025 06:41:22 +0000 (02:41 -0400)]
Merge pull request #3443 from cgwalters/readme-tweak

rust: Tweaks for README.md

8 months agorust: Tweaks for README.md
Colin Walters [Sat, 14 Jun 2025 05:28:22 +0000 (07:28 +0200)]
rust: Tweaks for README.md

Mostly an excuse to publish a new crate to test that
regenerating the docs works.

9 months agoMerge pull request #3439 from cgwalters/update-dockerfile
Colin Walters [Thu, 5 Jun 2025 00:42:06 +0000 (20:42 -0400)]
Merge pull request #3439 from cgwalters/update-dockerfile

ci: Rework Dockerfile, add Justfile and improved testing

9 months agoci: Rework Dockerfile, add Justfile and improved testing
Colin Walters [Fri, 30 May 2025 20:14:36 +0000 (16:14 -0400)]
ci: Rework Dockerfile, add Justfile and improved testing

- Move the Dockerfile to the toplevel as a primary dev entrypoint
- The Justfile is intended especially for agentic AI like
  block/goose or Claude Code as an allowlistable-command entrypoint
- Include attempt at incremental build caching, partially defeated
  by autotools
- Add new tests-unit-container that tests ostree-prepare-root in
  a container

Signed-off-by: Colin Walters <walters@verbum.org>
9 months agotests/libtest: Just use python as a webserver if no libsoup
Colin Walters [Sun, 1 Jun 2025 21:00:01 +0000 (17:00 -0400)]
tests/libtest: Just use python as a webserver if no libsoup

We only have a very few tests that actually need what
we have in ostree-trivial-httpd that supports things like serving
random 500 errors etc.

If we don't have libsoup, then just use a python webserver.

Signed-off-by: Colin Walters <walters@verbum.org>
9 months agoMerge pull request #3437 from cgwalters/update-dockerfile-prep
Colin Walters [Tue, 3 Jun 2025 22:04:59 +0000 (18:04 -0400)]
Merge pull request #3437 from cgwalters/update-dockerfile-prep

A few buildsystem fixes

9 months agoMerge pull request #3438 from cgwalters/minor-docs
Colin Walters [Tue, 3 Jun 2025 20:35:31 +0000 (16:35 -0400)]
Merge pull request #3438 from cgwalters/minor-docs

docs: Some typo and link fixes

9 months agodocs: Some typo and link fixes
Colin Walters [Tue, 3 Jun 2025 18:48:45 +0000 (14:48 -0400)]
docs: Some typo and link fixes

Found with AI assistance.

Co-authored-by: Etienne Champetier <champetier.etienne@gmail.com>
9 months agoci: Disable soup3 in minimal
Colin Walters [Mon, 2 Jun 2025 21:04:50 +0000 (17:04 -0400)]
ci: Disable soup3 in minimal

Noticed in drive by.

Signed-off-by: Colin Walters <walters@verbum.org>
9 months agolibtest: Quiet some output
Colin Walters [Mon, 2 Jun 2025 21:04:34 +0000 (17:04 -0400)]
libtest: Quiet some output

Otherwise there's a lot of test spam.

Signed-off-by: Colin Walters <walters@verbum.org>
9 months agoci: use srcdir != builddir by default, builddir under target/
Colin Walters [Mon, 2 Jun 2025 20:34:16 +0000 (16:34 -0400)]
ci: use srcdir != builddir by default, builddir under target/

This blends better with docker builds where we have a blanket
ignore of `target` in .dockerignore.

Right now we use git.mk to generate .gitignore and autotools
drop stuff all over the place.

Signed-off-by: Colin Walters <walters@verbum.org>
9 months agoci: Updates for centos builds
Colin Walters [Fri, 30 May 2025 20:13:45 +0000 (16:13 -0400)]
ci: Updates for centos builds

- Do the modern way to enable the buildroot with crb and epel

Signed-off-by: Colin Walters <walters@verbum.org>
9 months agodockerignore: Add
Colin Walters [Fri, 30 May 2025 20:13:21 +0000 (16:13 -0400)]
dockerignore: Add

This ensures we don't pick up things we shouldn't from the source.

Signed-off-by: Colin Walters <walters@verbum.org>